home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)G / (A)G4.ADF / boulderto / Stone.src < prev   
Text File  |  1989-04-16  |  14KB  |  412 lines

  1. CLS : WINDOW 2,,(0,0)-(631,186),0  
  2.    WINDOW OUTPUT 2
  3.    PALETTE 0,0,0,0 : PALETTE 1,1,1,1
  4.    PALETTE 2,1,0,0 :PALETTE 3,0,0,0
  5.    COLOR 0,1 : COLOR 2,3
  6.    PRINT CHR$(13)+CHR$(13)
  7.    PRINT SPC(30)"S T O N E - A G E"
  8.    PRINT CHR$(13)
  9.    PRINT SPC(24)"Copyright 1986 by Klaus Kramer"
  10.    PRINT CHR$(13)+CHR$(13): TTTE$= "STONE-AGE V1.1 was written by THE TWILIGHT & THE ENEMYS"
  11.    PRINT SPC(11) TTTE$:PRINT
  12.    PRINT SPC(25)"Use the ESC key for suicide"
  13.    PRINT CHR$(13)+CHR$(13)+CHR$(13)+CHR$(13)
  14.    PRINT SPC(23)"Press the SPACE key to continue"
  15. Key: a$=INKEY$ : IF a$=" " THEN Stoneage 
  16. GOTO Key
  17. Stoneage: 
  18.   GOSUB init:GOSUB bild1
  19.   LINE (0,160)-(19,169),0,bf
  20.   wx=1:wy=17
  21.   IF stone(wx,wy)=3 THEN ko=ko-1
  22.   PUT (0,160),willi%:stone(wx,wy)=2
  23.   neu: zeit=TIMER
  24.   LINE(0,180)-(640,180),1:LINE(620,0)-(621,200),1,b
  25.  Hauptprog:
  26.   jy=STICK(3):jx=STICK(2) : esc$ = INKEY$
  27.    IF esc$ =CHR$(27) THEN GOTO itsovernowbabyblue
  28.   IF ABS(jy)=1 OR ABS(jx)=1 THEN
  29.    IF wy+jy<19 AND wy+jy>0 AND wx+jx<32 AND wx+jx>0 THEN
  30.     IF stone(wx+jx,wy+jy)=4 THEN GOTO Hauptprog
  31.     IF ABS(jx)=1 AND ABS(jy)=1 AND stone(wx+jx,wy)<>0 AND stone(wx,wy+jy)<>0 THEN
  32.     IF stone(wx+jx,wy)<>-2 AND stone(wx,wy+jy)<>-2 THEN GOTO Hauptprog
  33.        END IF
  34.    IF stone(wx+jx,wy+jy)<>1 THEN
  35.     IF stone(wx+jx,wy+jy)=3 THEN ko=ko-1:IF ko=0 THEN GOTO weiter
  36.     wy=wy+jy:wx=wx+jx:x=(wx-1)*20:y=(wy-1)*10:stone(wx,wy)=2
  37.     LINE (x,y)-(x+19,y+9),0,bf:SOUND 200,.2,255 :SOUND 200,.2,255,1
  38.     LINE (x-20*jx,y-10*jy)-(x-20*jx+19,y-10*jy+9),0,bf
  39.     PUT (x,y),willi%:stone(wx-jx,wy-jy)=-2
  40.     
  41.     IF stone(wx-jx,wy-jy-1)=1 THEN sx=wx-jx:sy=wy-jy-1:GOSUB steinschlag
  42.    ELSE
  43.      IF ABS(jy)=0 AND stone(wx+2*jx,wy+2*jy)=-2 THEN GOTO schieben
  44.    END IF
  45.   END IF
  46.  END IF
  47.  GOTO Hauptprog
  48.  
  49.  steinschlag: a=1
  50.  za:IF stone(sx,sy-a)=1 THEN a=a+1:GOTO za
  51.  sz=sy:sw=sx
  52.  FOR i=1 TO a:sy=sz-i+1:sx=sw:GOSUB s:NEXT i :RETURN
  53.  s:
  54.  IF stone(sx,sy+1)=-2 THEN
  55.   x=(sx-1)*20:y=(sy-1)*10
  56.   LINE(x,y)-(x+19,y+9),0,bf
  57.   stone(sx,sy)=-2:sy=sy+1:stone(sx,sy)=1
  58.   PUT (x,y+10),Rock%:GOTO s
  59.  ELSE
  60.   IF stone(sx,sy+1)=0 OR stone(sx,sy+1)=3 OR stone(sx,sy+1)=4 THEN
  61.   SOUND 100,.8,255:SOUND 100,.8,255,1:RETURN
  62.  ELSE
  63.   IF stone(sx,sy+1)=2 THEN
  64.    st=0:GOTO itsovernowbabyblue
  65.   ELSE
  66.    IF ABS(stone(sx-1,sy+1))=2 AND ABS(stone(sx+1,sy+1))=2 AND stone(sx-1,sy)=-2 AND stone(sx+1,sy)=-2 THEN
  67.      st=SGN(RND*10-5):GOTO u
  68.     ELSE
  69.      IF ABS(stone(sx-1,sy+1))=2 AND stone(sx-1,sy)=-2 THEN st=-1: GOTO u
  70.      IF ABS(stone(sx+1,sy+1))=2 AND stone(sx+1,sy)=-2 THEN st=1 : GOTO u
  71.      SOUND 100,.8,255:SOUND 100,.8,255,1:RETURN
  72.     END IF
  73.    END IF
  74.   END IF
  75.  END IF
  76.  
  77.  
  78.      
  79.  u: stone(sx,sy)=-2
  80.  IF stone(sx+st,sy+1)=2 THEN GOTO itsovernowbabyblue
  81.  x=(sx-1)*20:y=(sy-1)*10
  82.  LINE(x,y)-(x+19,y+9),0,bf
  83.  sy=sy+1:sx=sx+st:stone(sx,sy)=1
  84.  PUT(x+20*SGN(st),y+10),Rock%:SOUND 200,.1,255:SOUND 200,.1,255,1:GOTO s
  85.  
  86.  schieben:
  87.  stone(wx,wy)=-2:stone(wx+jx,wy+jy)=2:wx=wx+jx:wy=wy+jy
  88.  x=(wx-1)*20:y=(wy-1)*10:stone(wx+jx,wy+jy)=1
  89.  LINE(x-jx*20,y-jy*20)-(x-jx*20+19,y-jy*10+9),0,bf
  90.  LINE(x,y)-(x+19,y+9),0,bf:SOUND 700,.2,255:SOUND 700,.2,255,1
  91.  PUT (x,y),willi%:PUT (x+jx*20,y+jy*10),Rock%
  92.  IF stone(wx+jx,wy+jy+1)=-2 THEN sx=wx+jx:sy=wy+jy:GOSUB steinschlag
  93.  IF stone(wx-jx,wy-jy-1)=1 THEN sx=wx-jx:sy=wy-jy-1:GOSUB steinschlag
  94.  GOTO Hauptprog
  95.  
  96.  bild1: ko=0
  97.  FOR y=0 TO 170 STEP 10
  98.    FOR x=0 TO 600 STEP 20
  99.      stone(x/20+1,y/10+1)=0
  100.      IF RND<.7 THEN pul
  101.      IF RND<.5 THEN 
  102.        PUT (x,y),Rock%
  103.        stone(x/20+1,y/10+1)=1:GOTO pul2
  104.      ELSE
  105.        IF RND<.2 THEN
  106.         PUT (x,y),kohl%:stone(x/20+1,y/10+1)=3:ko=ko+1
  107.        ELSE
  108.         IF RND<.5 THEN
  109.          PUT (x,y),mauer%:stone(x/20+1,y/10+1)=4
  110.         ELSE
  111.  pul:     PUT (x,y),erde%
  112.  pul2:  END IF
  113.        END IF
  114.      END IF
  115.  NEXT x,y
  116.  RETURN
  117.  
  118.  weiter:
  119.  zeit2=TIMER:CLS:punkte=punkte+zeit2-zeit
  120.  PRINT "Du benoetigtest ";zeit2-zeit;" Sekunden fuer Screen ";na$
  121.  PRINT:PRINT "Insgesamt ";punkte;" Sekunden."
  122.  FOR i=1 TO 5000:NEXT i
  123.  CLS:bild=bild+1:ko=0:IF bild=7 GOTO freak
  124.   'bitte bei eigenen Bildern oben "bild=7" anpassen!
  125.   
  126.  w: ko=0:f1=(RND*7+8)/16:f2=(RND*7+8)/16:f3=(RND*7+8)/16
  127.  PALETTE 13,f1,f2,f3:PALETTE 14,(f1-.3)*(SGN(f1-.3)/2+.5),(f2-.3)*(SGN(f2-.3)/2+.5),(f3-.3)*(SGN(f3-.3)/2+.5)
  128.  PALETTE 15,((((f1-.3)*(SGN(f1-.3)/2+.5))-.3)*(SGN(((f1-.3)*(SGN(f1-.3)/2+.5))-.3)/2+.5)),((((f2-.3)*(SGN(f2-.3)/2+.5))-.3)*(SGN(((f2-.3)*(SGN(f2-.3)/2+.5))-.3)/2+.5)),((((f3-.3)*(SGN(f3-.3)/2+.5))-.3)*(SGN(((f3-.3)*(SGN(f3-.3)/2+.5))-.3)/2+.5))
  129.  PALETTE 3,1,RND*15/16,RND*15/16:PALETTE 5,RND*15/16,1,.1
  130.  PALETTE 10,(RND*7+8)/16,RND*15/16,0:PALETTE 12,1,(RND*7+8)/16,0
  131.  IF bild=1 THEN RESTORE bilder
  132.  IF bild=2 THEN RESTORE bild2
  133.  IF bild=3 THEN RESTORE bild3
  134.  IF bild=4 THEN RESTORE bild4
  135.  IF bild=5 THEN RESTORE bild5
  136.  IF bild=6 THEN RESTORE bild6
  137.  
  138.   ' Hier bei eigenen Screens "IF bild= ..." ergaenzen
  139.   
  140.   READ na$:b$=" Stone Screen"+STR$(bild+1)+" : "+na$:WINDOW 2,b$,,8,1
  141.   FOR i=1 TO 18:READ b$
  142.    FOR j=1 TO 31:stone(j,i)=VAL(MID$(b$,j,1))
  143.    x=(j-1)*20:y=(i-1)*10
  144.    ON stone(j,i) GOTO fa1,fa2,fa3,fa4,fa5
  145.          PUT (x,y),erde%:GOTO fa
  146.     fa1: PUT (x,y),Rock%:GOTO fa
  147.     fa2: PUT (x,y),willi%:wx=j:wy=i:GOTO fa
  148.     fa3: PUT (x,y),kohl%:ko=ko+1:GOTO fa
  149.     fa4: PUT (x,y),mauer%:GOTO fa
  150.     fa5: stone(j,i)=-2:LINE(x,y)-(x+19,y+9),0,bf
  151.    fa: NEXT j,i
  152.   GOTO neu
  153.   
  154.   itsovernowbabyblue: FOR i = 0 TO 40 STEP 2:x=(wx-1)*20:y=(wy-1)*10
  155.   PUT (x,y),Rock%:PUT (x,y),willi%
  156.   PUT (x-st*20,y-10),Rock%:LINE(x-st*20,y-10)-(x-st*20+19,y-1),0,bf
  157.   SOUND i*100,.2,255:SOUND i*100,.2,255,1:NEXT i
  158.   FOR j=0 TO 9:FOR i=0+j TO 200 STEP 10:LINE(0,i)-(640,i),0:NEXT i,j
  159.   COLOR 2
  160.   PRINT " --------------------------------"
  161.   PRINT " Bedaure. Das war wohl nichts... "
  162.   PRINT " --------------------------------":PRINT:man=man+1:IF man = 10 THEN PRINT "GAME OVER":FOR i =1 TO 9000 : NEXT i : goto fin
  163.   PRINT :PRINT " Du hast noch ";10-man;" Leben."
  164.   PRINT :PRINT " Weiter: Joystick hoch.":PRINT:PRINT " Ende: Joystick runter."
  165.   FOR i = 0 TO 600 STEP 30 :PUT (i,25),willi%:NEXT i:PRINT :PRINT 
  166.   F:IF STICK(3)=-1 THEN
  167.       IF bild=0 THEN
  168.        ERASE stone,Rock%,willi%,erde%,mauer%,kohl%
  169.        GOTO Stoneage
  170.       ELSE
  171.         GOTO w
  172.        END IF
  173.      ELSE
  174.        IF STICK(3)=1 THEN
  175.         WINDOW CLOSE 2
  176.         WINDOW OUTPUT 1
  177.         SCREEN CLOSE 1
  178.         END
  179.        ELSE
  180.         GOTO F
  181.        END IF
  182.      END IF
  183.      
  184.    freak: WINDOW 2," Geschafft",,8,1
  185.    CLS:FOR i =1 TO 15 :COLOR i
  186.    PRINT  INT(punkte);"Sekunden.  Sieg!  Doch weitere Screens warten..."
  187.    NEXT i
  188.    FOR i= 1 TO 333: PUT (RND*620,RND*190),willi%
  189.    PUT (RND*620,RND*190),Rock%: NEXT i
  190.    goto fin 
  191.    
  192.    init:
  193.    DIM stone(32,19):sch=40
  194.    SCREEN 1,640,200,4,2: RANDOMIZE(TIMER/100)
  195.    WINDOW 2,"Stone Screen 1 : Zufall",,8,1
  196.    WINDOW OUTPUT 2:WAVE 0,SIN:na$="Zufall"
  197.    FOR i=1 TO LEN(TTTE$):ttte1=ttte1+ASC(LEFT$(TTTE$,i)):NEXT i
  198.    IF ttte1<>4565 THEN FIN
  199.    DEF FNF=RND*15/16: DEF FNr=(RND*7+8)/16:ttte1=0
  200.    RESTORE farben:DEF FNt(x)=(x-.3)*(SGN(x-.3)/2+.5)
  201.    FOR i=0 TO 15: READ r,g,b
  202.      PALETTE i,r/15,g/15,b/15
  203.    NEXT i
  204.    farben:
  205.    DATA  0, 0, 0,15,15,15,12 , 0, 0,15, 6, 0
  206.    DATA  0, 9, 0, 3,15, 1,0, 0,15, 2,12,13
  207.    DATA 15,0,12,10, 0,15,9, 5, 0,15,12,10
  208.    DATA 15,14, 0,12,12,12,8, 8, 8, 4, 4, 4
  209.    DIM Rock%(83)
  210.    FOR i=0 TO 83: READ Rock%(i)
  211.    NEXT i
  212.    DATA 20,10,4,1022,0,7993,-16384,32766
  213.    DATA -8192,-6336,0,-9216,0,-32753,-8192,16495
  214.    DATA 8192,892,0,1484,-32768,3003,0,0
  215.    DATA 0,198,0,1,0,6329,-20480,9215
  216.    DATA -20480,32767,-4096,-20481,12288,31740,8192,16332
  217.    DATA -16384,4091,0,1022,0,8191,-16384,32767
  218.    DATA -8192,-7,-20480,-1,-20480,-1,-4096,-4097
  219.    DATA 12288,31740,8192,16332,-16384,4091,0,1022
  220.    DATA 0,8191,-16384,32767,-8192,-7,-20480,-1
  221.    DATA -20480,-1,-4096,-4097,12288,31740,8192,16332
  222.    DATA -16384,4091,0,0
  223.    DIM erde%(83)
  224.    FOR i=0 TO 83:READ erde%(i):NEXT i
  225.    DATA 20,10,4,0,0,0,0,0,0,0,0,0,0,0,0,0
  226.    DATA 0,0,0,0,0,0,0,-8423,-24576,-19721,-4096,-84
  227.    DATA 8192,-26501,-4096,30670,28672,-26309,-16384,28655
  228.    DATA 28672,-4008,-16384,8127,28672,-21023,-24576,0
  229.    DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  230.    DATA 0,0,0,-10983,8192,-27933,-4096,-116
  231.    DATA 8192,-26503,20480,21966,16384,-26318,-16384,28335
  232.    DATA 28672,-20392,-16384,4797,28672,-31263,8192,0
  233.    DIM willi%(83)
  234.    FOR i=0 TO 83:READ willi%(i):NEXT i
  235.    DATA 20,10,4,8095,-32768,30817,-8192,14433
  236.    DATA -16384,32767,-8192,-32768,4096,-29306,4096,-32768
  237.    DATA 4096,-12874,12288,24576,-8192,8191,-32768,0,0,0,0,0
  238.    DATA 0,0,0,32767,-8192,0,0,16384
  239.    DATA 8192,12289,-16384,8191,0,0,0,0
  240.    DATA 0,0,0,4097,0,520,16384,0
  241.    DATA 4096,0,0,0,0,16384,4096,0
  242.    DATA -16384,4095,-32768,0,0,0,0,0
  243.    DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  244.    DIM kohl%(83)
  245.    FOR i=0 TO 83:READ kohl%(i):NEXT i
  246.    DATA 20,10,4,9418,16384,-2944,28672,168
  247.    DATA -16384,-9271,8192,2509,-32768,-15763,-20480,26307
  248.    DATA -16384,14269,-4096,-6913,-8192,15507,-32768,0
  249.    DATA 0,1024,0,136,-32768,6272,0,2048
  250.    DATA 0,0,0,0,0,0,0,0,0,0,0,10186
  251.    DATA 16384,-1,-4096,16383,-8192,-1,-4096,32767
  252.    DATA -16384,-1,-4096,32767,-8192,16383,-4096,-1
  253.    DATA -8192,16275,-32768,768,0,2927,-32768,16215
  254.    DATA 8192,1078,20480,28690,16384,14738,16384,6204
  255.    DATA 0,0,0,0,0,0,0,0
  256.    DIM mauer%(83)
  257.    FOR i=0 TO 83:READ mauer%(i):NEXT i
  258.    DATA 20,10,4,0,0,-1793,4096,0,0,0,0,8079
  259.    DATA -4096,0,0,0,0,-15368,28672,-14343
  260.    DATA -4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  261.    DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  262.    DATA 0,0,0,-1025,28672,-1025,28672,0,0,32703,-4096,32703
  263.    DATA -4096,0,0,-8197,-4096,-8197,-4096,-8197
  264.    DATA -4096,0,0,0
  265.    
  266.    bilder:
  267.    DATA "Logik-Horror"
  268.    DATA 1301005500400500000010005500001
  269.    DATA 1430431440441540044000440010101
  270.    DATA 1555400410400454141404445010101
  271.    DATA 0555410045400454143004555010103
  272.    DATA 0010410445441041140400440010105
  273.    DATA 0404445005000001100050000011115
  274.    DATA 0404144444400004444400111011115
  275.    DATA 5404140500401015555510111011105
  276.    DATA 5434140440401041555140131011055
  277.    DATA 5444140140401044500440111010551
  278.    DATA 0111145045401004500410000015511
  279.    DATA 1000145040401004343410000015111
  280.    DATA 1111141340001004444400040045000
  281.    DATA 4444144441000001155100040455000
  282.    DATA 4000300001040404440440044555555
  283.    DATA 4000000041040404545404044555555
  284.    DATA 4000000041043404545414045455555
  285.    DATA 4200000000004004443414145043433
  286.  
  287.    bild2:
  288.    DATA "Jeder Schritt kann Falsch sein"
  289.    DATA 3105430004001003000055500000000
  290.    DATA 0140444414103000444444444444445
  291.    DATA 0140100005100300145555555155550
  292.    DATA 5140051055100003045444445444440
  293.    DATA 0141500551100100045551345555540
  294.    DATA 0141105511030001040103041555540
  295.    DATA 0141055114000111044444441151140
  296.    DATA 0140551144103011140055000131140
  297.    DATA 3145511440000012140444444444440
  298.    DATA 0145114431030000040400100110000
  299.    DATA 0145144133010010140444444444440
  300.    DATA 5145443313130003040004011400540
  301.    DATA 5140433333130003044404000404540
  302.    DATA 5140431313331033044404055454040
  303.    DATA 5145413331333333041104045454040
  304.    DATA 0140433133333133041000045454040
  305.    DATA 0140433333133333141511045454040
  306.    DATA 1000413333331313143511045554000
  307.    
  308.    bild3:
  309.    DATA "Fallenstellers Nachtgebet"
  310.    DATA 1101111000444144443044444444444
  311.    DATA 0114013411555515555504111115534
  312.    DATA 5140010041040414454004111105504
  313.    DATA 1003010550104414440004111111114
  314.    DATA 1404414404101414100404444414444
  315.    DATA 1400111004101414101404300100004
  316.    DATA 1401010104101414100404444144404
  317.    DATA 1410010014101414100400000000004
  318.    DATA 0100510001001414110444444044444
  319.    DATA 4110010011401414100014000000000
  320.    DATA 4001111100401414130404000000101
  321.    DATA 4400444004401414100004110444444
  322.    DATA 0001003000001414100404111414301
  323.    DATA 3100010000101414101004444414400
  324.    DATA 3331000101001414100004441113401
  325.    DATA 1333300000001414100400500000401
  326.    DATA 3313333001001414100004444444410
  327.    DATA 3333333330000020004000005550000
  328.    bild4:
  329.    DATA "Unloesbar?"
  330.    DATA 0000400000000011100000000000000
  331.    DATA 1000400044444441444444400000000
  332.    DATA 0000400000040001100400000000000
  333.    DATA 0400400100040001100400000000000
  334.    DATA 0433400000040001100400411114444
  335.    DATA 0433400000040001100400400000003
  336.    DATA 0444400010040001100400404444444
  337.    DATA 0000000000000001000000004000000
  338.    DATA 4000000000000001000000000000000
  339.    DATA 0000011111111001000000001000000
  340.    DATA 0000113333331101000000001110000
  341.    DATA 0000011111111301444000000000000
  342.    DATA 0000011111111301004000000000000
  343.    DATA 0000011111111301004000000000000
  344.    DATA 0000033333333301004000000000000
  345.    DATA 0000000000000001004000044411000
  346.    DATA 0000000000000001004000040000000
  347.    DATA 2000000000000001554000043104003
  348.  
  349.    bild5:
  350.    DATA "Willi's Brueder"
  351.    DATA 1111111111111111111111144444444
  352.    DATA 0055555555500000000000340000000
  353.    DATA 0455555555442444444444440000000
  354.    DATA 0455555555444400000000000000000
  355.    DATA 5455555555555555555555555555555
  356.    DATA 5455555555555555555555555555555
  357.    DATA 5455555555555444544455555555555
  358.    DATA 5455555555555545554555555555555
  359.    DATA 5455555555555545554555555555555
  360.    DATA 5455555555555545554555555555555
  361.    DATA 5455555555555555555555555555555
  362.    DATA 5455555555555555555555555555555
  363.    DATA 5455555555555555555555555555555
  364.    DATA 5455555555555555555555555555555
  365.    DATA 5455555555555555555555555555555
  366.    DATA 5455555555555555555555555555555
  367.    DATA 5422222222222222222222220000000
  368.    DATA 2400000000000000000000000000000
  369.  
  370.       bild6:
  371.    DATA "Fred lebt! Lupo auch"
  372.    DATA 3410000000000000000041100000000
  373.    DATA 1010000000000000000043140000000
  374.    DATA 1110000000000000000044140000000
  375.    DATA 0110011111110111110000140000000
  376.    DATA 4010001111101111111000140001111
  377.    DATA 0010000313000000000000140001331
  378.    DATA 0410000010001111000000140001111
  379.    DATA 0000000010000034000000140001331 
  380.    DATA 0044000010001111111000140001111
  381.    DATA 0000000010000111110000140004004
  382.    DATA 0000000030000000000000140000033
  383.    DATA 0000000000000000000000140000033
  384.    DATA 0000000000000000000000140000033
  385.    DATA 0000004444400000000000140000000
  386.    DATA 0000000000000010010000140000000
  387.    DATA 0000000000044444410000140444430
  388.    DATA 0000000000040100510000100400000
  389.    DATA 0000000000043005510020015430045
  390.    
  391.    RETURN
  392.    
  393.  Fin:
  394.    End
  395.    
  396.    
  397.    
  398.    
  399.   
  400.   
  401.    
  402.  
  403.  
  404.  
  405.  
  406.         
  407.  
  408.   
  409.     
  410.        
  411.  
  412.